Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@hebcal/leyning

Package Overview
Dependencies
Maintainers
1
Versions
137
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@hebcal/leyning

Torah Reading API for Parashat HaShavua and holidays

  • 7.4.5
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

@hebcal/leyning

Javascript Torah Reading API for Parashat HaShavua and holidays

Build Status

This package includes both traditional (full kriyah) and weekday Torah readings.

Triennial Torah Readings have moved to @hebcal/triennial

Installation

$ npm install @hebcal/leyning

Synopsis

import {HebrewCalendar, HDate, Event} from '@hebcal/core';
import {getLeyningForParshaHaShavua, formatAliyahWithBook} from '@hebcal/leyning';

const events = HebrewCalendar.calendar({sedrot: true, noHolidays: true});
const ev = events.find((ev) => ev.getDesc() == 'Parashat Pinchas');
const reading = getLeyningForParshaHaShavua(ev, false);
console.log(`${ev.getDesc()}: ${reading.summary}`);
console.log(`Haftara: ${reading.haftara}`);
for (const [num, aliyah] of Object.entries(reading.fullkriyah)) {
  const number = num == 'M' ? 'maftir' : `aliyah ${num}`;
  let str = formatAliyahWithBook(aliyah);
  if (reading.reason[num]) {
      str += ' | ' + reading.reason[num];
  }
  str += ` (${aliyah.v} verses)`;
  console.log(`${number}: ${str}`);
}

Constants

BOOK : Array.<string>

Names of the books of the Torah. BOOK[1] === 'Genesis'

Functions

parshaToString(parsha)string

Formats parsha as a string

clone(src)any

Makes a deep copy of the src object using JSON stringify and parse

calculateNumVerses(aliyah)number

Calculates the number of verses in an aliyah or haftara based on the b (begin verse), e (end verse) and k (book). Modifies aliyah by setting the v field.

formatAliyahWithBook(a)string

Formats an aliyah object like "Numbers 28:9-28:15"

formatAliyahShort(aliyah, showBook)string

Formats an aliyah object like "Numbers 28:9-15"

sumVerses(aliyot)number

Returns the total number of verses in an array of Aliyah (or haftarah) objects

makeLeyningParts(aliyot)Array.<Aliyah>

Summarizes an AliyotMap by collapsing all adjacent aliyot. Finds any non-overlapping parts (e.g. special 7th aliyah or maftir)

makeSummaryFromParts(parts)string

Returns a string representation of the leyning parts. Separate verse ranges read from the same book are separated by commas, e.g. Isaiah 6:1-7:6, 9:5-6. Verse ranges from different books are separated by semicolons, e.g. Genesis 21:1-34; Numbers 29:1-6.

makeLeyningSummary(aliyot)string

Makes a summary of the leyning, like "Genesis 6:9-11:32"

hasFestival(holiday)boolean

Is there a special festival Torah Reading for holiday?

lookupFestival(holiday)any

Returns the raw metadata for festival reading for holiday

getLeyningKeyForEvent(ev, [il])string

Based on the event date, type and title, finds the relevant leyning key

specialReadings2(parsha, hd, il, aliyot)SpecialReading

Determines if the regular parashat haShavua coincides with an event that requires a special maftir or Haftara (for example Shabbat HaGadol, Shabbat Chanukah, Rosh Chodesh or Machar Chodesh, etc.).

This function does not modify aliyot. Instead, it returns a deep copy with aliyot['M'] replaced and sets reason.M (and in some cases the 6th and 7th aliyah, setting reason['7']).

If a special Haftarah applies, the result will have a haft property pointing to Haftarah object and sets reason.haftara.

getLeyningForHolidayKey(key, [cholHaMoedDay], [il])Leyning

Looks up leyning for a given holiday key. Key should be an (untranslated) string used in holiday-readings.json. Returns some of full kriyah aliyot, special Maftir, special Haftarah

getLeyningForHoliday(ev, [il])Leyning

Looks up leyning for a given holiday. Returns some of full kriyah aliyot, special Maftir, special Haftarah

getWeekdayReading(parsha)Object.<string, Aliyah>

Looks up Monday/Thursday aliyot for a regular parsha

getLeyningForParsha(parsha)Leyning

Looks up regular leyning for a weekly parsha with no special readings

getLeyningForParshaHaShavua(ev, [il])Leyning

Looks up leyning for a regular Shabbat parsha, including any special maftir or Haftara.

lookupParsha(parsha)ParshaMeta

Returns the parsha metadata

getLeyningOnDate(hdate, il, [wantarray])Leyning | Array.<Leyning>

Looks up leyning for a regular Shabbat, Monday/Thursday weekday or holiday.

If hdate coincides with a holiday that has Torah reading, returns the reading for that day (see getLeyningForHoliday)

Otherwise, if hdate is a Saturday, returns getLeyningForParshaHaShavua

Otherwise, if hdate is a Monday or Thursday, returns Leyning for the Parashat haShavua, containing only the weekday aliyot (no fullkriyah).

Otherwise, returns undefined.

writeCsvLines(stream, ev, reading, il, isParsha)

Formats reading for CSV

Typedefs

Aliyah : Object

Represents an aliyah

SpecialReading : Object

Leyning for a parsha hashavua or holiday

LeyningNames : Object

Name of the parsha hashavua or holiday

Leyning : Object

Leyning for a parsha hashavua or holiday

ParshaMeta : Object

Parsha metadata

BOOK : Array.<string>

Names of the books of the Torah. BOOK[1] === 'Genesis'

Kind: global constant
Read only: true

parshaToString(parsha) ⇒ string

Formats parsha as a string

Kind: global function

ParamTypeDescription
parshastring | Array.<string>untranslated name like 'Pinchas' or ['Pinchas'] or ['Matot','Masei']

clone(src) ⇒ any

Makes a deep copy of the src object using JSON stringify and parse

Kind: global function

ParamType
srcany

calculateNumVerses(aliyah) ⇒ number

Calculates the number of verses in an aliyah or haftara based on the b (begin verse), e (end verse) and k (book). Modifies aliyah by setting the v field.

Kind: global function

ParamType
aliyahAliyah

formatAliyahWithBook(a) ⇒ string

Formats an aliyah object like "Numbers 28:9-28:15"

Kind: global function

ParamTypeDescription
aAliyahaliyah

formatAliyahShort(aliyah, showBook) ⇒ string

Formats an aliyah object like "Numbers 28:9-15"

Kind: global function

ParamType
aliyahAliyah
showBookboolean

sumVerses(aliyot) ⇒ number

Returns the total number of verses in an array of Aliyah (or haftarah) objects

Kind: global function

ParamType
aliyotAliyah | Array.<Aliyah>

makeLeyningParts(aliyot) ⇒ Array.<Aliyah>

Summarizes an AliyotMap by collapsing all adjacent aliyot. Finds any non-overlapping parts (e.g. special 7th aliyah or maftir)

Kind: global function

ParamType
aliyotObject.<string, Aliyah>

makeSummaryFromParts(parts) ⇒ string

Returns a string representation of the leyning parts. Separate verse ranges read from the same book are separated by commas, e.g. Isaiah 6:1-7:6, 9:5-6. Verse ranges from different books are separated by semicolons, e.g. Genesis 21:1-34; Numbers 29:1-6.

Kind: global function

ParamType
partsAliyah | Array.<Aliyah>

makeLeyningSummary(aliyot) ⇒ string

Makes a summary of the leyning, like "Genesis 6:9-11:32"

Kind: global function

ParamType
aliyotObject.<string, Aliyah>

hasFestival(holiday) ⇒ boolean

Is there a special festival Torah Reading for holiday?

Kind: global function

ParamType
holidaystring

lookupFestival(holiday) ⇒ any

Returns the raw metadata for festival reading for holiday

Kind: global function

ParamType
holidaystring

getLeyningKeyForEvent(ev, [il]) ⇒ string

Based on the event date, type and title, finds the relevant leyning key

Kind: global function
Returns: string - key to look up in holiday-reading.json

ParamTypeDefaultDescription
evEventevent
[il]booleanfalsetrue if Israel holiday scheme

specialReadings2(parsha, hd, il, aliyot) ⇒ SpecialReading

Determines if the regular parashat haShavua coincides with an event that requires a special maftir or Haftara (for example Shabbat HaGadol, Shabbat Chanukah, Rosh Chodesh or Machar Chodesh, etc.).

This function does not modify aliyot. Instead, it returns a deep copy with aliyot['M'] replaced and sets reason.M (and in some cases the 6th and 7th aliyah, setting reason['7']).

If a special Haftarah applies, the result will have a haft property pointing to Haftarah object and sets reason.haftara.

Kind: global function

ParamType
parshaArray.<string>
hdHDate
ilboolean
aliyotObject.<string, Aliyah>

getLeyningForHolidayKey(key, [cholHaMoedDay], [il]) ⇒ Leyning

Looks up leyning for a given holiday key. Key should be an (untranslated) string used in holiday-readings.json. Returns some of full kriyah aliyot, special Maftir, special Haftarah

Kind: global function
Returns: Leyning - map of aliyot

ParamTypeDescription
keystringname from holiday-readings.json to find
[cholHaMoedDay]number
[il]boolean

getLeyningForHoliday(ev, [il]) ⇒ Leyning

Looks up leyning for a given holiday. Returns some of full kriyah aliyot, special Maftir, special Haftarah

Kind: global function
Returns: Leyning - map of aliyot

ParamTypeDefaultDescription
evEventthe Hebcal event associated with this leyning
[il]booleanfalsetrue if Israel holiday scheme

getWeekdayReading(parsha) ⇒ Object.<string, Aliyah>

Looks up Monday/Thursday aliyot for a regular parsha

Kind: global function
Returns: Object.<string, Aliyah> - map of aliyot

ParamTypeDescription
parshastring | Array.<string>untranslated name like 'Pinchas' or ['Pinchas'] or ['Matot','Masei']

getLeyningForParsha(parsha) ⇒ Leyning

Looks up regular leyning for a weekly parsha with no special readings

Kind: global function
Returns: Leyning - map of aliyot

ParamTypeDescription
parshastring | Array.<string>untranslated name like 'Pinchas' or ['Pinchas'] or ['Matot','Masei']

getLeyningForParshaHaShavua(ev, [il]) ⇒ Leyning

Looks up leyning for a regular Shabbat parsha, including any special maftir or Haftara.

Kind: global function
Returns: Leyning - map of aliyot

ParamTypeDefaultDescription
evEventthe Hebcal event associated with this leyning
[il]booleanfalsein Israel

lookupParsha(parsha) ⇒ ParshaMeta

Returns the parsha metadata

Kind: global function

ParamTypeDescription
parshastring | Array.<string>untranslated name like 'Pinchas' or ['Pinchas'] or ['Matot','Masei']

getLeyningOnDate(hdate, il, [wantarray]) ⇒ Leyning | Array.<Leyning>

Looks up leyning for a regular Shabbat, Monday/Thursday weekday or holiday.

If hdate coincides with a holiday that has Torah reading, returns the reading for that day (see getLeyningForHoliday)

Otherwise, if hdate is a Saturday, returns getLeyningForParshaHaShavua

Otherwise, if hdate is a Monday or Thursday, returns Leyning for the Parashat haShavua, containing only the weekday aliyot (no fullkriyah).

Otherwise, returns undefined.

Kind: global function
Returns: Leyning | Array.<Leyning> - map of aliyot

ParamTypeDefaultDescription
hdateHDateHebrew Date
ilbooleanin Israel
[wantarray]booleanfalseto return an array of 0 or more readings

writeCsvLines(stream, ev, reading, il, isParsha)

Formats reading for CSV

Kind: global function

ParamType
streamfs.WriteStream
evEvent
readingLeyning
ilboolean
isParshaboolean

Aliyah : Object

Represents an aliyah

Kind: global typedef
Properties

NameTypeDescription
kstringBook (e.g. "Numbers")
bstringbeginning verse (e.g. "28:9")
estringending verse (e.g. "28:15")
[v]numbernumber of verses
[p]numberparsha number (1=Bereshit, 54=Vezot HaBracha)

SpecialReading : Object

Leyning for a parsha hashavua or holiday

Kind: global typedef
Properties

NameTypeDescription
aliyotObject.<string, Aliyah>Map of aliyot 1 through 7 plus M for maftir
[reason]Object.<string, string>Explanations for special readings, keyed by aliyah number, M for maftir or haftara for Haftarah
haftAliyah | Array.<Aliyah>Haftarah object(s)
sephAliyah | Array.<Aliyah>Haftarah object(s)

LeyningNames : Object

Name of the parsha hashavua or holiday

Kind: global typedef
Properties

NameTypeDescription
enstringEnglish
hestringHebrew (with nikud)

Leyning : Object

Leyning for a parsha hashavua or holiday

Kind: global typedef
Properties

NameTypeDescription
nameLeyningNames
[parsha]Array.<string>An array of either 1 (regular) or 2 (doubled parsha). undefined for holiday readings
[parshaNum]number1 for Bereshit, 2 for Noach, etc. undefined for holiday readings
summarystringSuch as Genesis 1:1 - 6:8
haftAliyah | Array.<Aliyah>Haftarah object(s)
haftarastringHaftarah, such as Isaiah 42:5 – 43:11
[haftaraNumV]numberNumber of verses in the Haftarah
[seph]Aliyah | Array.<Aliyah>Haftarah object(s) for Sephardim
[sephardic]stringHaftarah for Sephardim, such as Isaiah 42:5 - 42:21
[sephardicNumV]numberNumber of verses in the Haftarah for Sephardim
fullkriyahObject.<string, Aliyah>Map of aliyot 1 through 7 plus M for maftir
[weekday]Object.<string, Aliyah>Optional map of weekday Torah Readings aliyot 1 through 3 for Monday and Thursday
[reason]Object.<string, string>Explanations for special readings, keyed by aliyah number, M for maftir or haftara for Haftarah
[megillah]Object.<string, Aliyah>Optional map of megillah reading. Song of Songs is read on the sabbath of Passover week, the Book of Ruth on Shavuot, Lamentations on Tisha be-Av, Ecclesiastes on the sabbath of the week of Sukkoth, and the Book of Esther on Purim.

ParshaMeta : Object

Parsha metadata

Kind: global typedef
Properties

NameTypeDescription
numnumber1 for Bereshit, 2 for Noach, etc. undefined for holiday readings
hebrewstringparsha name in Hebrew with niqud
booknumber1 for Genesis, 2 for Exodus, 5 for Deuteronomy
haftAliyah | Array.<Aliyah>Haftarah object(s)
[seph]Aliyah | Array.<Aliyah>Haftarah object(s) for Sephardim
fullkriyahObject.<string, Array.<string>>Map of aliyot 1 through 7 plus M for maftir
weekdayObject.<string, Array.<string>>Map of weekday Torah Readings aliyot 1 through 3 for Monday and Thursday

Keywords

FAQs

Package last updated on 05 Oct 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc